package com.zan.t1;

/**
 * @Author Zan
 * @Create 2024/3/5 16:24
 * @Description :
 */
public class Demo1_17 {
    public static void main(String[] args) {
        /*StringBuilder sb = new StringBuilder(); // m2的例子
        sb.append(4);
        sb.append(5);
        sb.append(6);
        new Thread(() -> {
            m2(sb);
        }).start();*/

        StringBuilder sb = m3(); // m3的例子
        new Thread(() -> {
            sb.append(5);
            System.out.println(sb);
        }).start();
    }

    public static void m1() { // 线程安全
        StringBuilder sb = new StringBuilder();
        sb.append(1);
        sb.append(2);
        sb.append(3);
        System.out.println(sb.toString());
    }

    public static void m2(StringBuilder sb) { // 线程不安全 - 不是线程私有的了，有可能会有其他的能够访问sb
        sb.append(1);
        sb.append(2);
        sb.append(3);
        System.out.println(sb.toString());
    }

    public static StringBuilder m3() { // 线程不安全
        StringBuilder sb = new StringBuilder();
        sb.append(1);
        sb.append(2);
        sb.append(3);
        return sb;
    }

}
